package de.szut.ita13sommerfeld.blockadventure.gameentities;

import java.awt.Graphics;
import java.awt.Rectangle;
import java.util.LinkedList;

import de.szut.ita13sommerfeld.blockadventure.level.SpawnPoint;
import de.szut.ita13sommerfeld.blockadventure.window.Game;
import de.szut.ita13sommerfeld.blockadventure.window.GameCamera;

public abstract class Missile extends Entity {

	protected GameCamera camera = Game.getGameCameraInstance();
		
	public static final float WIDTH = 24, HEIGHT = 5;
	
	public static final int DIR_LEFT = 0;
	public static final int DIR_RIGHT = 1;
	
	protected int damage;
	protected int dir;
	
	public Missile(float x, float y, float width, float height, SpawnPoint spawnpoint, int damage, int dir) {
		super(x, y, width, height, spawnpoint);
		this.damage = damage;
		this.dir = dir;
	}

	public abstract void render(Graphics g);
	public abstract void tick(LinkedList<Entity> entities);
	public abstract Rectangle getBottomBounds(); 
	public abstract Rectangle getBoundsTop();
	public abstract Rectangle getBoundsRight();
	public abstract Rectangle getBoundsLeft();

	public float getWidth() {
		return width;
	}

	public void setWidth(float width) {
		this.width = width;
	}

	public float getHeight() {
		return height;
	}

	public void setHeight(float height) {
		this.height = height;
	}

	public int getDamage() {
		return damage;
	}

	public void setDamage(int damage) {
		this.damage = damage;
	}

	public int getDir() {
		return dir;
	}

	public void setDir(int dir) {
		this.dir = dir;
	}
	
}
